Image processing apparatus capable of obtaining prediction value of time relating to printing, image processing method, and storage medium

ABSTRACT

An image processing apparatus includes a reception unit that receives a print job, a prediction unit that performs prediction processing for obtaining a prediction value of a time relating to printing the print job, a determination unit that determines whether a time required for the prediction processing being performed for the print job exceeds a threshold value, and a cancellation unit that causes, based on a determination that the time required for the prediction processing being performed for the print job exceeds the threshold value, the prediction unit to cancel the prediction processing currently performed for the print job.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a continuation, and claims the benefit of U.S.patent application Ser. No. 15/006,335 filed Jan. 26, 2016, which claimsthe benefit of Japanese Patent Application No. 2015-014652 filed Jan.28, 2015, all of which are hereby incorporated by reference herein intheir entirety.

BACKGROUND Field

Aspects of the present invention generally relate to a technique thatobtains a prediction value relating to a time for printing of a printjob.

Description of the Related Art

Japanese Patent Application Laid-Open No. 2007-193808 discusses aprinting apparatus that obtains a prediction value of a time required tocomplete printing of each print job (i.e., print time) in the order ofreception of print job.

If the received print job includes a huge number of drawing commands, along time is required to complete the prediction processing (i.e., theprocessing for calculating the prediction value of a print time for theprint job). In a case where the printing apparatus receives such a printjob including a huge number of drawing commands, the predictionprocessing being performed for only one print job substantially occupiesall of calculation resources (e.g., hardware resources represented by aCPU and a memory). Therefore, in a case where a user instructs theprinting apparatus to perform other processing (e.g., print processingof the print job) before the printing apparatus completes theabove-mentioned prediction processing, there remains limited resourcesavailable for the other processing.

Further, in a case where after reception of a print job including a hugenumber of drawing commands, the printing apparatus subsequently receivesa different print job, the following may arise. An excessive time istaken for completion of the prediction processing being performed forthe antecedently received print job. Therefore, the predictionprocessing for the subsequently received print job cannot be started.

SUMMARY

According to an aspect of the present invention, an image processingapparatus includes a reception unit configured to receive a print job, aprediction unit configured to perform prediction processing forobtaining a prediction value of a time relating to printing the printjob received by the reception unit, a determination unit configured todetermine whether a time required for the prediction processing beingperformed for the print job exceeds a threshold value, and acancellation unit configured to cause, based on a determination that thetime required for the prediction processing being performed for theprint job exceeds the threshold value, the prediction unit to cancel theprediction processing currently performed for the print job.

Further features of aspects of the present invention will becomeapparent from the following description of exemplary embodiments withreference to the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a hardware configuration of animage processing apparatus according to an exemplary embodiment.

FIG. 2 is a block diagram illustrating a software configuration of theimage processing apparatus according to the exemplary embodiment.

FIG. 3 is a diagram illustrating prediction processing performed for aprint job.

FIGS. 4A, 4B, 4C, and 4D are diagrams illustrating transition of a printjob list and a processing queue.

FIG. 5 is a diagram illustrating a processing flow of predictionprocessing performed for a print job according to a first exemplaryembodiment.

FIG. 6 is a diagram illustrating a screen that displays predicted timesof respective print jobs.

FIG. 7 is a flowchart illustrating a processing flow of predictionprocessing performed for a print job according to a third exemplaryembodiment.

DESCRIPTION OF THE EMBODIMENTS

FIG. 1 is a block diagram illustrating a hardware configuration of animage forming apparatus 1 as an example of an image processingapparatus. The image forming apparatus 1 includes a controller 100, aprinter engine 110, and an operation panel 112. The controller 100controls various operations that are performed by the image formingapparatus 1. The printer engine 110 prints an image on a sheet, such asa paper, based on image data received from the controller 100. Theoperation panel 112 displays an image based on the image data receivedfrom the controller 100. The printer engine 110 is, for example, anelectro-photographic printer engine. However, the type of the printerengine 110 can be an inkjet type or any other type as long as theprinter engine includes a mechanism capable of printing an image on asheet. Further, the operation panel 112 is a general display device,such as a liquid crystal display device. However, the operation panel112 can be configured as a touch screen that can detect a touchoperation by a user.

Hardware resources will be described in detail below with reference toFIGS. 1 and 2.

The controller 100 includes a central processing unit (CPU) 102, arandom access memory (RAM) 103, a network interface (I/F) 104, a readonly memory (ROM) 106, a hard disk drive (HDD) 107, a raster imageprocessor (RIP) 108, a device I/F 109, and an operation panel I/F 111,as hardware resources.

The ROM 106 stores computer programs that realize a softwareconfiguration of the block diagram illustrated in FIG. 2. The softwareconfiguration is realized in such a manner that the CPU 102 executeseach computer program loaded into the RAM 103. The CPU 102, whichperforms operations according to the computer programs, controls variousoperations by the functional units.

The network I/F 104 is connected to a network N1. The network I/F 104receives page description language (PDL) data via the network N1 from anexternal apparatus, such as a host personal computer (PC). The networkI/F 104 stores the received PDL data, as a print job, in the HDD 107. Inother words, the above-mentioned process corresponds to the process inwhich a receiving unit 200 illustrated in FIG. 2 receives PDL data froman external apparatus and stores the received PDL data, as a print job,in a storage unit 201.

An interpretation unit 202 and a DL generation unit (i.e., anintermediate data generation unit) 203, which are cooperatively realizedby the CPU 102 that operates according to the program and the RAM 103,process the stored print job and generate intermediate data that isgenerally referred to as a display list (DL). More specifically, theinterpretation unit 202 is configured to interpret one or a plurality ofdrawing commands included in the PDL data (i.e., the print job) andtransfer an interpretation result to the DL generation unit 203. The DLgeneration unit 203 is configured to generate a DL based on theinterpretation result transferred from the interpretation unit 202 andtransfer the generated DL to a later-described bitmap generation unit204. The above-mentioned transfer processing corresponds to theprocessing in which the CPU 102 (which functionally operates as theabove-mentioned DL generation unit 203) generates a DL on the RAM 103and transfers the generated DL from the RAM 103 to the RIP 108.

The RIP 108 is configured to generate bitmap image data (i.e., a bitmapimage) of a page by rasterizing the transferred DL. Further, the RIP 108transmits the generated image data to the printer engine 110 via thedevice I/F 109. The above-mentioned process corresponds to the processin which the bitmap generation unit 204 generates bitmap image databased on the DL received from the DL generation unit 203 and transmitsthe generated bitmap image data to the printer engine 110.

The CPU 102 that operates according to the program and the RAM 103functionally operate as a prediction processing unit 205 illustrated inFIG. 2. The prediction processing unit 205 is configured to performprediction processing before the image forming apparatus 1 starts theabove-mentioned print job printing operation.

More specifically, the prediction processing unit 205 performsprediction processing on a pre-print print job which is stored in thestorage unit 201 and is not yet subjected to the prediction processing.The prediction processing unit 205 includes an acquisition unit 206 thatis configured to acquire a print job that is not yet subjected to theprediction processing from the storage unit 201 and add the acquiredprint job to a processing queue 207. The prediction processing unit 205further includes a processing unit 208 that is configured to perform theprediction processing for each print job according to the addition orderof the print job added to the processing queue 207. The processing queue207 has a First In First Out (FIFO) structure and stores an executiontarget print job(s) to be subjected to the prediction processing. Then,the prediction processing unit 205 stores information indicating apredicted time of the print job, which can be obtained at the completiontiming of the prediction processing, in the storage unit 201 in such amanner that the information is associated with the corresponding printjob stored in the storage unit 201. A detailed prediction processingmethod will be described in detail below with reference to FIG. 3.

Further, the CPU 102 that operates according to the program and theoperation panel I/F 111 controlled by the CPU 102 functionally operateas a predicted time display unit 209 illustrated in FIG. 2. Thepredicted time display unit 209 generates image data to be displayed onthe operation panel 112 based on information (e.g., job name) indicatingthe print job stored in the storage unit 201 and information indicatingthe predicted time (e.g., the number of seconds) stored in associationwith the print job. Further, the predicted time display unit 209transmits the generated image data to the operation panel 112 via theoperation panel I/F 111 and causes the operation panel 112 to display animage in which the print job and the corresponding predicted time areassociated with each other.

The image forming apparatus 1 has the above-mentioned hardware andsoftware configurations. The image forming apparatus 1 having theabove-mentioned configurations performs the prediction processing for aprint job in the following manner. The prediction processing isperformed in such a manner that in a case where the time required forthe prediction processing being performed for a target print job exceedsa threshold time (i.e., a time-out time), the prediction processingbeing performed for the target print job is cancelled (stopped) and theprediction processing for a subsequent print job is started.

First, a method for obtaining the predicted time of a print job, whichis performed by the prediction processing unit 205, will be described indetail below with reference to FIG. 3. FIG. 3 is a diagram illustratinga flow of print job processing, the content of which has been alreadydescribed. More specifically, the print job processing can beconstituted by four types of processing (i.e., PDL interpretationprocessing, DL generation processing, bitmap generation processing, andprint processing). The prediction processing unit 205 obtains apredicted time (i.e., a prediction value of time) required for each typeof processing. First, the processing unit 208 starts predictionprocessing for a print job, at the head of the processing queue 207,which is among print jobs stored in the processing queue 207 by theacquisition unit 206. More specifically, the processing unit 208actually interprets each drawing command included in the PDL data of atarget print job. It is now assumed that the actual time required forthe PDL interpretation processing is a predicted time T1. Further, inthis process, the processing unit 208 saves each interpretation result.

Next, the processing unit 208 obtains a predicted time T2 of the DLgeneration processing based on the saved interpretation results. Forexample, a result is obtained as the predicted time T2 by multiplying asum of numbers of the interpretation results with a coefficient.

Next, the processing unit 208 obtains a predicted time T3 of the bitmapgeneration processing based on the saved interpretation results. Forexample, in a case where two or more objects corresponding to respectiveinterpretation results (e.g., graphic patterns or bitmap images) areoverlapped with each other, the processing unit 208 obtains a value 1 bymultiplying the number of mutually overlapped objects with acoefficient. Further, in a case where the object is a bitmap image, theprocessing unit 208 obtains a value 2 by multiplying the number ofpixels constituting the image with another coefficient. Then, theprocessing unit 208 obtains a sum of the value 1 and the value 2. Then,a result is obtained as the predicted time T3 by multiplying theobtained sum with a coefficient representing the performance of the RIP108.

Then, the processing unit 208 obtains a predicted time T4 of the printprocessing based on the number of sheets to be printed for the print joband an engine speed coefficient of the printer engine 110. The enginespeed coefficient is, for example, a time required for printing onesheet. For example, a result is obtained as the predicted time T4 bymultiplying the number of sheets to be printed with the engine speedcoefficient.

Then, the processing unit 208 obtains a sum of the predicted times T1 toT4 as a final predicted time.

The prediction processing according to the present exemplary embodimentis not limited to the above-mentioned example and any other method forobtaining the predicted time is employable.

Next, a print job list that is a list of print jobs stored in thestorage unit 201 and the processing queue 207 corresponding to the printjob list, which are used in the prediction processing, will be describedin detail below with reference to FIGS. 4A to 4D.

The left part of FIG. 4A illustrates a list of print jobs storedsequentially in the storage unit 201 according to the reception orderwhen each print job has been received by the receiving unit 200. Theright part of FIG. 4A illustrates the processing queue 207 in whichprint jobs stored in the storage unit 201 and not yet subjected to theprediction processing are added. The print job list includes fields (orcolumns) of the following four items for each record. The first item isreception order of each print job. The second item is identifier of theprint job (e.g., print job name). The third item is a predicted time ofthe print job (or information indicating the predicted time). The fourthitem is a cancellation flag indicating whether the prediction processingfor the print job has been cancelled. “N/A (Not Available)” in thepredicted time field indicates that the final predicted time of theprint job is not yet obtained. “FALSE” in the cancellation flag fieldindicates that the prediction processing for the print job has not everbeen cancelled. On the other hand, “TRUE” indicates that the predictionprocessing for the print job has been cancelled at least once.

FIG. 4A illustrates a state of the print job list immediately afterthree print jobs A, B, and C have been received. More specifically,according to the state illustrated in FIG. 4A, it can be known that theprint jobs A, B, and C have been sequentially received, and theprediction processing for the print jobs A, B, and C has not ever beencancelled. More specifically, each print job is not yet subjected to theprediction processing. Therefore, the acquisition unit 206 refers to theprint job list and adds each print job of which “predicted time” item is“N/A” indicating that the predicted time is not yet obtained, to theprocessing queue 207 according to the reception order. The right part ofFIG. 4A illustrates the state after the process. First, the processingunit 208 starts prediction processing for the print job A at the head ofthe processing queue 207.

FIG. 4B illustrates a state of the print job list and the processingqueue 207 after the prediction processing for the print job A has beencompleted within a threshold time (e.g., 180 seconds). The record of theprint job A in the print job list includes the predicted time “20seconds” obtained through the prediction processing. The processingqueue 207 illustrated in FIG. 4B indicates that the print job A has beendeleted because the prediction processing for the print job A has beencompleted. In the state illustrated in FIG. 4B, the processing unit 208starts prediction processing for the print job B at the head of theprocessing queue 207. It is now assumed that the time required for theprediction processing being performed for the print job B exceeds thethreshold time because the print job B includes a huge number of drawingcommands. In this case, the processing unit 208 cancels the predictionprocessing being performed for the print job B and sets the cancellationflag to TRUE for the record of the print job B in the print job list.Then, the processing unit 208 deletes the print job B from the head ofprocessing queue 207. FIG. 4C illustrates a state of the print job listand the processing queue 207 obtained through the above-mentionedprocess.

In the state illustrated in FIG. 4C, the processing unit 208 performsprediction processing for the print job C at the head of the processingqueue 207. As a result, the processing unit 208 obtains a predicted timeof the print job C and sets the obtained predicted time to the record ofthe print job C in the print job list. Further, the processing unit 208deletes the print job C from the processing queue 207. FIG. 4Dillustrates the print job list and the processing queue 207 obtainedthrough the above-mentioned process.

Through the above-mentioned process, the image forming apparatus 1 canappropriately cancel the prediction processing, which has been performedfor the print job B and takes an excessive time, and can start theprediction processing for the subsequent print job C. Further, even ifthere is not any subsequent print job to be subjected to the predictionprocessing, it is feasible to prevent the resources (calculationcapabilities) of the CPU 102 from being uselessly consumed for theprediction processing being performed for the print job B. Thus, theresources are effectively available for other processing (e.g., printprocessing for another print job).

FIG. 5 illustrates a processing flow that can realize theabove-mentioned sequential process. The prediction processing unit 205performs the processing of the flowchart illustrated in FIG. 5.

In step S501, the acquisition unit 206 adds a newly received and storedprint job, which is among the print jobs stored in the storage unit 201,to the processing queue 207, with reference to the print job list. Morespecifically, the acquisition unit 206 checks the “predicted time” itemand the “cancellation flag” item of each record in the print job listand detects a print job of which record includes “N/A” in the “predictedtime” field and “FALSE” in the “cancellation flag” field. Then, theacquisition unit 206 adds each detected print job to the processingqueue 207 according to the reception order of the print job list. FIG.4A illustrates the state obtained through the above-mentioned processperformed by the acquisition unit 206.

In step S502, the processing unit 208 starts the prediction processingfor a print job at the head of the processing queue 207.

In step S503, the processing unit 208 determines whether the predictionprocessing for the present print job has been completed. In a case wherethe prediction processing has been completed (YES in step S503), theoperation proceeds to step S504. In a case where the predictionprocessing has not been completed (NO in step S503), the operationproceeds to step S505. For example, the processing unit 208 performs thedetermination processing in step S503 every time when the processing ofa predetermined number of drawing commands included in the print job hasbeen completed. However, the processing timing is not limited to theabove-mentioned example. As another example, the processing unit 208 mayperform the determination processing in step S503 at predetermined timeintervals.

In step S504, the processing unit 208 sets the predicted time obtainedthrough the prediction processing in the “predicted time” field of thepresent print job record in the print job list. Further, the processingunit 208 deletes the print job from the head of the processing queue207. Then, the operation returns to step S501. FIG. 4B illustrates thestate obtained through the above-mentioned process performed by theprocessing unit 208.

On the other hand, in step S505, the processing unit 208 determineswhether the required time (i.e., elapsed time) for the predictionprocessing being performed for the present print job has exceeded thethreshold time (e.g., 180 seconds). In a case where the required timefor the prediction processing exceeds the threshold time (YES in stepS505), the operation proceeds to step S506. In a case where the requiredtime for the prediction processing does not exceed the threshold time(NO in step S505), the operation returns to step S503.

In step S506, the processing unit 208 stops (cancels) the predictionprocessing being performed for the present print job and deletes thestopped (or cancelled) print job from the processing queue 207. In thisprocess, the processing unit 208 sets “TRUE” in the “cancellation flag”field of the present print job record in the print job list. Then, theoperation returns to step S501. Through the above-mentioned process, theimage forming apparatus 1 can stop (cancel) the prediction processingfor the print job, which requires an excessive time to complete theprediction processing, and can start the prediction processing for asubsequent print job if there is the subsequent print job. FIG. 4Cillustrates the state obtained through the above-mentioned processperformed by the processing unit 208.

A screen illustrated in FIG. 6, which includes a list of the predictedtimes of respective print jobs obtained through the above-mentionedprocessing flow, is displayed on the operation panel 112. Morespecifically, the predicted time display unit 209 receives aninstruction to display the predicted times of respective jobs from auser, via the operation panel 112. In response to the reception of theuser instruction, the predicted time display unit 209 generates imagedata based on information about each print job included in the print joblist. In particular, the predicted time display unit 209 generates imagedata with reference to the print job name, which is the identifier ofthe print job, and the predicted time of the print job. Then, thepredicted time display unit 209 transmits the generated image data tothe operation panel 112. The predicted time display unit 209 controlsthe operation panel 112 in such a way as to display the screenillustrated in FIG. 6 based on the received image data. The format ofthe generated image data is not limited to a specific one. However, itis important that information enabling the user to check the predictedtime of each print job can be displayed on the operation panel 112. Forexample, it is desired that the print job name and the predicted timeare associated with each record on a displayed image.

The following is another example of the display that can be realized bythe predicted time display unit 209. For example, the predicted timedisplay unit 209 acquires information about the cancellation flag inaddition to the print job name, which is the identifier of theabove-mentioned print job, and information about the predicted time ofthe print job, from the print job list, in response to theabove-mentioned instruction received from the user. Then, the predictedtime display unit 209 confirms whether the predicted time has beenobtained for each print job. In a case where the predicted time isalready obtained, the predicted time display unit 209 generates imagedata in which the predicted time is associated with the print job name.In this process, in a case where the predicted time display unit 209confirms that the information about the predicted time is “N/A”, thepredicted time display unit 209 further confirms the “cancellation flag”item of the print job. Then, in a case where the “cancellation flag”item is “TRUE”, it means that the predicted time of the print job is notyet obtained due to time-out. Therefore, the predicted time display unit209 generates image data in which the print job name is associated with“N/A.” On the other hand, in a case where the “cancellation flag” itemis “FALSE”, it means that the print job is not yet subjected to theprediction processing. Therefore, the predicted time display unit 209generates image data in which the print job name is associated with thedisplay “prediction in progress.” Finally, the predicted time displayunit 209 transmits the generated image data to the operation panel 112as mentioned above and causes the operation panel 112 to display apredicted time screen.

In the first exemplary embodiment, the image forming apparatus 1 cancelsthe print time prediction processing for a print job which takes anexcessive time to complete the prediction processing and starts theprediction processing for the subsequent print job. Therefore, it isfeasible to obtain predicted times of print jobs as many as possiblewithin a relatively short period of time. However, it will be useful torestart the prediction processing for the print job of which predictionprocessing has been previously cancelled. For example, to satisfy theabove-mentioned requirement, only when there is not any print job thatis not yet subjected to the prediction processing, the processing unit208 adds the print job of which prediction processing has beenpreviously cancelled to the processing queue 207. More specifically, instep S501 illustrated in FIG. 5, the processing unit 208 furtherperforms the following process in addition to the above-mentionedprocess. In a case where the predicted time is already set for all ofeach record in which the “cancellation flag” is “FALSE” in the print joblist, the processing unit 208 adds one of the print jobs having therecord in which the “cancellation flag” is “TRUE”, to the processingqueue 207. The print job to be added in this case is, for example,earliest in reception order.

Further, to satisfy the above-mentioned requirement, the content of thedetermination processing to be performed in step S505 alters in thefollowing manner. In step S505, in a case where the required time forthe prediction processing being performed for the print job exceeds thethreshold time and the “cancellation flag” of the print job is “FALSE”in the record thereof (YES in step S505), the operation proceeds to stepS506. In a case where the determination result is NO in step S505, theoperation returns to step S503.

When the flowchart illustrated in FIG. 5 is changed as mentioned above,the image forming apparatus 1 can restart and complete the predictionprocessing for the print job of which prediction processing has beenpreviously cancelled.

In the second exemplary embodiment, in a case where the image formingapparatus 1 restarts the prediction processing for the print job ofwhich prediction processing has been previously cancelled, the imageforming apparatus 1 cannot start prediction processing for another printjob until the prediction processing for the print job of whichpredication processing has been previously cancelled completes. In athird exemplary embodiment, in a case where a new print job is receivedwhile the above-mentioned re-prediction processing is in progress, theimage forming apparatus 1 controls the operation in such a way as toprioritize the prediction processing for the newly received print job.The image forming apparatus 1 performs the above-mentioned control basedon monitoring of the cancellation flag of the print job and sorting ofthe print job in the processing queue 207.

FIG. 7 is a flowchart illustrating processing that is performed by theimage forming apparatus 1 to restart the prediction processing for aprint job of which prediction processing has been cancelled previouslywhile prioritizing the prediction processing for a new print job overthe prediction processing for the print job of which predictionprocessing has been cancelled previously.

In step S701, the acquisition unit 206 performs processing that issubstantially similar to that of step S501 illustrated in FIG. 5.

In step S702, it is determined whether there is any print job that isnot yet subjected to the prediction processing. More specifically, theprocessing unit 208 determines whether the processing queue 207 includesa print job having a record in which “FALSE” is set in the “cancellationflag” field of the print job list. In a case where the processing unit208 determines that such a print job is included in the processing queue207 (YES in step S702), the operation proceeds to step S703. In a casewhere the processing unit 208 determines that such a print job is notincluded in the processing queue 207 (NO in step S702), the operationproceeds to step S705. The reason why the operation proceeds to stepS705 is because the processing unit 208 performs the predictionprocessing again for the print job of which prediction processing hasbeen cancelled previously.

In steps S703 and S704, the processing unit 208 performs processing forshifting a print job that is not yet subjected to the predictionprocessing to the head of the processing queue so that the execution ofthe prediction processing for the print job that is not yet subjected tothe prediction processing is given higher priority.

More specifically, in step S703, the processing unit 208 determineswhether the print job at the head of the processing queue 207 is a printjob that has been previously subjected to the prediction processing. Torealize the determination processing in step S703, the processing unit208 determines whether the “cancellation flag” of the print job at thehead of the processing queue 207 is “TRUE.” In a case where the“cancellation flag” is “TRUE” (YES in step S703), it means that theprint job is previously subjected to the prediction processing.Therefore, the operation proceeds to step S704, and in step S704, theprocessing unit 208 shifts the print job to the tail of the processingqueue 207. In a case where the “cancellation flag” is not “TRUE” (NO instep S703), it means that the print job that is not yet subjected to theprediction processing is present at the head of the processing queue207. Therefore, the operation proceeds to step S705, and in step S705the processing unit 208 starts the prediction processing for the printjob.

In steps S705, S706, S707, and S708, the processing unit 208 performsprocessing similar to the sequential processing in steps S502, S503,S504, and S505 illustrated in FIG. 5.

In a case where the time-out of the prediction processing occurs (YES instep S708), then in steps S709 and S710, the processing unit 208performs processing for confirming whether a print job that is not yetsubjected to the prediction processing has been newly received. Morespecifically, in step S709, the processing unit 208 performs processingsimilar to that of step S701. Then, in step S710, the processing unit208 determines whether a print job that is not yet subjected to theprediction processing is present in the processing queue 207. Theprocessing content of step S710 is similar to that of step S702. In acase where the print job that is not yet subjected to the predictionprocessing is not present in the processing queue 207 (NO in step S710),the operation proceeds to step S711. In a case where the determinationresult is YES in step S710, more specifically, when the print job thatis not yet subjected to the prediction processing is present in theprocessing queue 207, the operation proceeds to step S712.

In step S711, the processing unit 208 temporarily increases thethreshold time to be used in the prediction processing for the presentprint job by a predetermined time. As a result, the processing unit 208continues the prediction processing. The threshold time having beentemporarily increased as mentioned above is reset to the initially setthreshold time after the present print job is deleted from theprocessing queue 207 in step S707 or after the present print job isshifted to the tail of the processing queue 207 in step S712. Thecontrol method for causing the processing unit 208 to continue theprediction processing is not limited to the above-mentioned example. Forexample, the time required for the prediction processing may be reset to“zero (0).”

In step S712, the processing unit 208 cancels the prediction processingbeing performed for the present print job and sets “TRUE” in the“cancellation flag” field of the present print job record in the printjob list. Then, the processing unit 208 shifts the present print job tothe tail of the processing queue 207 following the last print job in theprocessing queue 207. More specifically, in a case where a new print jobis received while the prediction processing for the present print job isin progress, the sequential processing in steps S709, S710, and S712brings the effect that the prediction processing for the present printjob is appropriately cancelled in order that the prediction processingfor the newly received print job is given higher priority. Further,shifting the present print job to the tail of the processing queue 207intends to restart the prediction processing for the print job.

By performing the processing according to the above-mentioned flow, theimage forming apparatus 1 can assure preferential execution of theprediction processing for a print job that is not yet subjected to theprediction processing. Further, even in a case where the predictionprocessing for a print job has been cancelled previously, the imageforming apparatus 1 can assure restarting the prediction processing forthe print job. Therefore, predicted times of many print jobs can beobtained and displayed, as soon as possible, for a user. Further,predicted times of all print jobs can be obtained and displayed for auser.

Other Embodiments

Embodiment(s) of aspects of the present invention can also be realizedby a computer of a system or apparatus that reads out and executescomputer executable instructions (e.g., one or more programs) recordedon a storage medium (which may also be referred to more fully as a‘non-transitory computer-readable storage medium’) to perform thefunctions of one or more of the above-described embodiment(s) and/orthat includes one or more circuits (e.g., application specificintegrated circuit (ASIC)) for performing the functions of one or moreof the above-described embodiment(s), and by a method performed by thecomputer of the system or apparatus by, for example, reading out andexecuting the computer executable instructions from the storage mediumto perform the functions of one or more of the above-describedembodiment(s) and/or controlling the one or more circuits to perform thefunctions of one or more of the above-described embodiment(s). Thecomputer may comprise one or more processors (e.g., central processingunit (CPU), micro processing unit (MPU)) and may include a network ofseparate computers or separate processors to read out and execute thecomputer executable instructions. The computer executable instructionsmay be provided to the computer, for example, from a network or thestorage medium. The storage medium may include, for example, one or moreof a hard disk, a random-access memory (RAM), a read only memory (ROM),a storage of distributed computing systems, an optical disk (such as acompact disc (CD), digital versatile disc (DVD), or Blu-ray Disc (BD)™,a flash memory device, a memory card, and the like.

While aspects of the present invention have been described withreference to exemplary embodiments, it is to be understood that theaspects of the invention are not limited to the disclosed exemplaryembodiments. The scope of the following claims is to be accorded thebroadest interpretation so as to encompass all such modifications andequivalent structures and functions.

This application claims the benefit of Japanese Patent Application No.2015-014652, filed Jan. 28, 2015, which is hereby incorporated byreference herein in its entirety.

What is claimed is:
 1. A method of estimating a job processing time of aprint job, comprising: starting an estimation process for estimating ajob processing time of a print job; and displaying, on a display, thejob processing time of the print job having been estimated by theestimation process, wherein the method further comprises: if anestimation process for estimating a job processing time of a print jobhaving been started is not finished within a predetermined time from thestart of the estimation process, stopping the estimation process andstarting another estimation process for estimating a job processing timeof another print job.
 2. The method according to claim 1, wherein aplurality of estimation processes for estimating job processing times ofrespective print jobs are not executed concurrently.
 3. The methodaccording to claim 1, wherein the stopped estimation process is notrestarted.
 4. The method according to claim 1, further comprisingrestarting the stopped estimation process for estimating the jobprocessing time of the print job.
 5. The method according to claim 1,further comprising displaying on the display, for a print job whose jobprocessing time is not obtained, predetermined information differentfrom a job processing time.
 6. The method according to claim 1, furthercomprising displaying on the display, for a print job whose jobprocessing time has not been obtained yet, predetermined informationdifferent from a job processing time.
 7. The method according to claim1, further comprising displaying on the display, for a print job forwhich the predetermined information was displayed on the display, a jobprocessing time of the print job having been estimated by the estimationprocess.
 8. The method according to claim 7, wherein, upon displaying,for a print job for which the predetermined information was displayed onthe display, the job processing time of the print job, the display ofthe predetermined information for the print job is cancelled.
 9. Anapparatus which estimates a job processing time of a print job,comprising: one or more processors configured to start an estimationprocess for estimating a job processing time of a print job; and adisplay configured to display the job processing time of the print jobhaving been estimated by the estimation process, wherein the processorsare configured to: if an estimation process for estimating a jobprocessing time of a print job having been started is not finishedwithin a predetermined time from the start of the estimation process,stop the estimation process and start another estimation process forestimating a job processing time of another print job.
 10. The apparatusaccording to claim 9, wherein the processors are configured not toexecute a plurality of estimation processes for estimating jobprocessing times of respective print jobs concurrently.
 11. Theapparatus according to claim 9, wherein the processors are configurednot to restart the stopped estimation process for estimating the jobprocessing time of the print job.
 12. The apparatus according to claim9, wherein the processors are configured to restart the stoppedestimation process for estimating the job processing time of the printjob.